/* Copyright (c) 2004-2024 peigen.info. All rights reserved. */

package info.peigen.hotpot.common.service.base.test;

import com.google.common.collect.Maps;
import info.peigen.hotpot.common.core.domain.Domain;
import info.peigen.hotpot.common.core.order.OrderBase;
import info.peigen.hotpot.common.core.result.*;
import info.peigen.hotpot.common.service.base.ServiceQueryContext;
import info.peigen.hotpot.common.service.base.processor.ProcessorServiceContext;
import info.peigen.hotpot.component.data.repository.Entity;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;

import java.io.Serializable;
import java.util.Map;

/**
 * <b>(ServiceTestContext)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/5/2
 */
@SuppressWarnings("rawtypes")
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class ServiceTestContext implements Serializable {
    ProcessorServiceContext serviceContext;
    ServiceQueryContext     serviceQueryContext;
    OrderBase               order;
    Entity                  entity;
    Domain                  domain;
    ResultBase              resultBase;
    SingleResult            singleResult;
    ListResult              listResult;
    PageResult              pageResult;
    ResultStatus            resultStatus;
    ResultCode              resultCode;
    @Builder.Default
    Map<String, Object> extend = Maps.newHashMap();
}